// var student = [{
//     name: '张三',
//     no: '201901'
//   },
//   {
//     name: '李四',
//     no: '201902'
//   },
//   {
//     name: '王五',
//     no: '201903'
//   }
// ]

// // function find1(no){
// //     for(var i = 0;i<student.length;i++){
// //         if(no == student[i].no){
// //             return student[i].name;
// //         }
// //     }
// // }


// // console.log('调用第一个方法返回：'+find1('201901'))

// function find2(no) {
//   var obj = {}
//   student.forEach(function (ele, index) {
//     obj[ele.no] = ele.name;
//   })
//   console.log(obj);
//   return obj[no];

// }


// console.log('调用第二个方法返回：'+find2('201902'))


// var obj1 = [{a:1,b:{c:3},d:4},{e:2}];
// var obj2 = obj1.slice(obj1);
// console.log(obj1[1])
// console.log('obj1：',obj1)
// console.log('obj2：',obj2)
// obj2[1].e = 3;
// console.log('obj1改',obj1)
// console.log('obj2改',obj2)


// var list = [1,2,3,4,5,6,7,8,9];
// var list3 = list.slice();
// list3[6] = 1;
// console.log('list:',list);
// console.log('list3:',list3)



// function random1 (min,max) {
//   min = Math.ceil(min);
//   max = Math.floor(max);
//   return Math.floor(Math.random() * (max - min)) + min;
// }

// console.log(parseInt(random1(0,99)))


// var str = 'hello World';
// console.log(/world/.test(str))
// console.log(/world/i.test(str))
// var str1 = str.replace('World','123')
// console.log(str1)
// var tel = '17708313281'
// // console.log(/^1[8735][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/.test(tel))//^开始符号  $代表结束符号
// var tel1 = tel.replace(/^(1[3789]\d)(\d{4})(\d{4})$/,function($0,$2,$3,$4){
//   return $2
// })
// console.log(tel1)



// function dateFormat(date,formString){
//   var year = date.getFullYear();
//   var formString = formString.replace(/(Y+)/,function($0,$1){
//     return year.toString().substr(4 - $1.length)
//   })

//   var month = date.getMonth() + 1;
//   var formString = formString.replace(/(M+)/,function(){
//     if (month >= 10){
//       return month.toString();
//     }
//     else{
//       return 0+month.toString();
//     }
//   })

//   var day = date.getDate();
//   var formString = formString.replace(/(D+)/,function(){
//     if (day >= 10){
//       return day.toString();
//     }
//     else{
//       return 0 + day.toString();
//     }
//   })

//   var hour = date.getHours();
//   var formString = formString.replace(/(h+)/,function(){
//     if (hour >= 10){
//       return hour.toString();
//     }
//     else{
//       return 0 + hour.toString();
//     }
//   })

//   var minute = date.getMinutes();
//   var formString = formString.replace(/(mm+)/,function(){
//     if (minute >= 10){
//       return minute.toString();
//     }
//     else{
//       return 0 + minute.toString();
//     }
//   })

//   var second = date.getSeconds();
//   var formString = formString.replace(/(ss+)/,function(){
//     if (second >= 10){
//       return second.toString();
//     }
//     else{
//       return 0 + second.toString();
//     }
//   })
//   // console.log(typeof(month));


//   return formString;

// }

// let date = new Date();

// console.log(dateFormat(date,'YYYY-MM-DD hh:mm:ss'))



// var emp = {"employees":[
//   {"firstName":"Bill", "lastName":"Gates"}, 
//   {"firstName":"Steve", "lastName":"Jobs"}, 
//   {"firstName":"Alan", "lastName":"Turing"}
// ]}

// //js对象转化为json文本
// var json = JSON.stringify(emp)
// console.log(json)


// //json文件转化为js对象
// var js = JSON.parse(json)
// console.log(js)




// var navRightItems = [{
//     item: [{
//         title: '11',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '12',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '13',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '14',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '15',
//         src: './image/sofa1.png'
//       }
//     ]
//   },
//   {
//     item: [{
//         title: '21',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '22',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '23',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '24',
//         src: './image/sofa1.png'
//       },
//       {
//         title: '25',
//         src: './image/sofa1.png'
//       }
//     ]
//   }
// ]





// function sayHello(name) {
//   console.log(`Hello ${name} !`)
// }

// module.exports.sayHello = sayHello

//调用重新构造后的page
require('./util/page')
const request = require('./util/request')
const config = require('./config')
const themeListeners = []
global.isDemo = true


// const cloud = require('wx-server-sdk')

// cloud.init({

//   env: cloud.DYNAMIC_CURRENT_ENV
// })

// wx.cloud.callFunction({
//   // 云函数名称
//   name: 'helloWorld',
//   // 传给云函数的参数
//   data: {
//     a: 1,
//     b: 2,
//   },
//   success: function(res) {
//     console.log(res.result.sum) // 3
//   },
//   fail: console.error
// })


App({
  onLaunch(opts, data) {
    wx.login({
      success: res => {
        request.get('http://localhost:3000/wxlogin?code=' + res.code).then(res => {
          wx.userInfo = res
          wx.token = res.token
          //如果待执行数组中有数据，则执行待执行界面
          if (wx.waitLoginPages.length) {
            for (let i = 0; i < wx.waitLoginPages.length; i++) {
              let page = wx.waitLoginPages[i]
              page.onLoad.call(page.context, page.options)
            }
          }
        })
      }
    })

    // const that = this;
    // const canIUseSetBackgroundFetchToken = wx.canIUse('setBackgroundFetchToken')
    // if (canIUseSetBackgroundFetchToken) {
    //   wx.setBackgroundFetchToken({
    //     token: 'getBackgroundFetchToken',
    //   })
    // }
    // if (wx.getBackgroundFetchData) {
    //   wx.getBackgroundFetchData({
    //     fetchType: 'pre',
    //     success(res) {
    //       that.globalData.backgroundFetchData  = res;
    //       console.log('读取预拉取数据成功')
    //     },
    //     fail() {
    //       console.log('读取预拉取数据失败')
    //       wx.showToast({
    //         title: '无缓存数据',
    //         icon: 'none'
    //       })
    //     },
    //     complete() {
    //       console.log('结束读取')
    //     }
    //   })
    // }
    if (data && data.path) {
      wx.navigateTo({
        url: data.path,
      })
    }
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        env: config.envId,
        traceUser: true,
      })
    }

  },


  onShow(opts) {
    // console.log(wx.getSystemInfoSync())
  },
  onHide() {},
  onThemeChange({
    theme
  }) {
    this.globalData.theme = theme
    themeListeners.forEach((listener) => {
      listener(theme)
    })
  },
  watchThemeChange(listener) {
    if (themeListeners.indexOf(listener) < 0) {
      themeListeners.push(listener)
    }
  },
  unWatchThemeChange(listener) {
    const index = themeListeners.indexOf(listener)
    if (index > -1) {
      themeListeners.splice(index, 1)
    }
  },
  globalData: {
    theme: wx.getSystemInfoSync().theme,
    hasLogin: false,
    openid: null,
    iconTabbar: '/page/weui/example/images/icon_tabbar.png',
  },
  // lazy loading openid
  // getUserOpenId(callback) {
  //   const self = this

  //   if (self.globalData.openid) {
  //     callback(null, self.globalData.openid)
  //   } else {
  //     wx.login({
  //       success(data) {
  //         wx.cloud.callFunction({
  //           name: 'login',
  //           data: {
  //             action: 'openid'
  //           },
  //           success: res => {
  //             console.log('拉取openid成功', res)
  //             self.globalData.openid = res.result.openid
  //             callback(null, self.globalData.openid)
  //           },
  //           fail: err => {
  //             console.log('拉取用户openid失败，将无法正常使用开放接口等服务', res)
  //             callback(res)
  //           }
  //         })
  //       },
  //       fail(err) {
  //         console.log('wx.login 接口调用失败，将无法正常使用开放接口等服务', err)
  //         callback(err)
  //       }
  //     })
  //   }
  // },
  // 通过云函数获取用户 openid，支持回调或 Promise
  getUserOpenIdViaCloud() {
    return wx.cloud.callFunction({
      name: 'wxContext',
      data: {}
    }).then(res => {
      this.globalData.openid = res.result.openid
      return res.result.openid
    })
  }
})